Перейти к основному содержимому

5.14. Первая программа на Swift

Разработчику Архитектору

Первая программа на Swift

Платформенные ограничения и возможности

Swift изначально разрабатывался как часть экосистемы Apple, поэтому его нативная поддержка реализована в операционной системе macOS. Для полноценной разработки под iOS, iPadOS и другие платформы Apple требуется именно macOS, поскольку симуляторы устройств, отладчики и компиляторы тесно интегрированы в систему.

Однако благодаря открытому исходному коду Swift доступен и на других платформах:

  • Linux: официально поддерживается. Существуют сборки Swift для Ubuntu, CentOS и других дистрибутивов. На Linux можно компилировать и запускать консольные приложения, серверные сервисы, но нельзя собирать приложения под iOS или macOS.
  • Windows: поддержка экспериментальная. Компания Apple совместно с сообществом предоставляет инструменты для сборки Swift-приложений на Windows, но функциональность ограничена. Разработка мобильных приложений под Apple через Windows невозможна.

Для новичка, желающего изучить Swift как язык, а не как инструмент для создания iOS-приложений, возможна работа на Linux. Но если цель — создавать приложения для iPhone, iPad или Mac, потребуется компьютер с macOS.


Необходимое программное обеспечение

На macOS

Основной инструмент разработки — Xcode. Это бесплатная интегрированная среда разработки (IDE), доступная в Mac App Store. Xcode включает:

  • Компилятор Swift (swiftc)
  • Отладчик LLDB
  • Симуляторы устройств Apple
  • Интерфейсный редактор SwiftUI и Interface Builder
  • Инструменты управления проектами и зависимостями

Установка:

  1. Откройте App Store на Mac.
  2. Найдите Xcode.
  3. Нажмите «Получить» и дождитесь завершения загрузки и установки.
  4. После установки запустите Xcode один раз, чтобы принять лицензионное соглашение и завершить настройку компонентов.

Xcode автоматически устанавливает командную строку разработчика, включая swift, swiftc и другие утилиты.

На Linux

Swift можно установить через официальные репозитуары. Пример для Ubuntu 22.04:

wget -qO- https://swift.org/keys/all-keys.asc | gpg --import -
sudo apt-get install -y clang libicu-dev
wget https://download.swift.org/swift-5.9-release/ubuntu2204/swift-5.9-RELEASE/swift-5.9-RELEASE-ubuntu22.04.tar.gz
tar xzf swift-5.9-RELEASE-ubuntu22.04.tar.gz
sudo mv swift-5.9-RELEASE-ubuntu22.04 /usr/share/swift
echo 'export PATH=/usr/share/swift/usr/bin:"$PATH"' >> ~/.bashrc
source ~/.bashrc

После этого команда swift --version покажет установленную версию.

На Linux нет графической IDE, аналогичной Xcode, но можно использовать Visual Studio Code с расширением Swift for Visual Studio Code или SourceKit-LSP для подсветки синтаксиса, автодополнения и навигации по коду.

На Windows

Поддержка Swift на Windows находится в стадии активной разработки. Официальный установщик доступен на GitHub-репозитории Swift. Установка требует наличия Visual Studio 2022 и компонентов C++. Однако эта конфигурация подходит только для экспериментов и обучения основам языка. Разработка приложений под Apple через Windows невозможна.


Выбор среды разработки

  • Xcode — рекомендуемый выбор для всех, кто работает на macOS и планирует создавать приложения под Apple. Это полный набор инструментов, оптимизированный под экосистему.
  • Visual Studio Code — легковесная альтернатива для Linux и Windows. Требует ручной настройки, но достаточна для изучения синтаксиса и написания консольных программ.
  • Swift REPL — интерактивная оболочка, доступная через терминал (swift). Позволяет выполнять код построчно, но не подходит для создания полноценных программ.

Создание первой программы

Вариант 1: Через Xcode (macOS)

  1. Запустите Xcode.
  2. На стартовом экране выберите Create a new Xcode project.
  3. В разделе macOS выберите шаблон App и нажмите Next.
  4. Укажите:
    • Product Name: HelloWorld
    • Interface: SwiftUI или Storyboard (для простоты можно выбрать SwiftUI)
    • Language: Swift
    • Снимите галочки с Core Data, Tests и других дополнительных опций.
  5. Нажмите Next, выберите папку для сохранения проекта и нажмите Create.

Xcode создаст шаблон проекта. Чтобы вывести «Hello, World!» в консоль:

  • Откройте файл ContentView.swift (если используется SwiftUI).
  • Найдите структуру ContentView.
  • Добавьте в метод body следующую строку:
Text("Hello, World!")

Это выведет текст в окне приложения.

Если же цель — просто напечатать сообщение в терминал (без графического интерфейса):

  1. При создании проекта выберите macOS → Command Line Tool.
  2. Укажите имя и язык Swift.
  3. Xcode создаст файл main.swift.
  4. Замените содержимое на:
print("Hello, World!")
  1. Нажмите кнопку Run (треугольник в верхнем левом углу).
  2. Внизу откроется панель Console, где появится надпись Hello, World!.

Вариант 2: Через терминал (macOS, Linux, Windows)

  1. Создайте папку для проекта:
mkdir hello-swift
cd hello-swift
  1. Создайте файл main.swift:
touch main.swift
  1. Откройте его в любом текстовом редакторе и введите:
print("Hello, World!")
  1. Сохраните файл.

  2. Выполните программу:

swift main.swift

Компилятор Swift автоматически обработает файл и выведет результат в терминал.

Альтернативно, можно скомпилировать программу в исполняемый файл:

swiftc main.swift -o hello
./hello

Это создаст бинарный файл hello, который можно запускать без вызова интерпретатора.


Структура программы

Простейшая программа на Swift состоит из одной строки:

print("Hello, World!")

Функция print выводит переданный текст в стандартный поток вывода (обычно терминал или консоль отладчика). Swift не требует объявления точки входа вроде main() в явном виде, если файл называется main.swift. В этом случае система автоматически запускает код с первой строки.

Если файл имеет другое имя или используется в составе проекта, точка входа может быть определена явно:

@main
struct HelloWorldApp {
static func main() {
print("Hello, World!")
}
}

Такой подход применяется в современных проектах SwiftUI, где аннотация @main указывает компилятору на стартовую структуру.


Запуск и отладка

  • В Xcode нажатие Run компилирует проект и запускает его в симуляторе (для iOS) или в отдельном окне (для macOS).
  • В терминале команда swift запускает скрипт в режиме интерпретации, что удобно для быстрых тестов.
  • Компиляция через swiftc создаёт нативный исполняемый файл, который работает быстрее и не зависит от наличия Swift-среды выполнения.

При возникновении ошибок компилятор выводит понятные сообщения с указанием строки и описанием проблемы. Например, пропущенная кавычка или неверный тип данных будут немедленно обнаружены благодаря строгой системе типов Swift.